/**
 * Copyright (c) 2022 Peking University and Peking University Institute for Computing and Digital Economy
 * OpenSCOW is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 */

import React, { useCallback, useState } from "react";
import { ClickableA } from "src/components/ClickableA";

import { getCurrentLangLibWebText } from "./libWebI18n/libI18n";





export function useRefreshToken() {
  const [refreshToken, setRefreshToken] = useState(false);

  const updateRefreshToken =
    useCallback(() => setRefreshToken((original) => !original), []);

  return [refreshToken, updateRefreshToken] as const;
}

export interface Refreshable {
  refreshToken: boolean;
}

interface RefreshLinkProps {
  refresh: () => void;
  languageId: string;
}

export const RefreshLink: React.FC<RefreshLinkProps> = ({ refresh, languageId }) => (
  <ClickableA onClick={refresh}>
    {getCurrentLangLibWebText(languageId, "refreshButton")}
  </ClickableA>
);
